package com.sunthy.mall.utils;



/**
 * @Description: 正则验证
 * @Author: XM
 */
public class RegularUtils {
    /**
     * 密码密码最少8位,最多16位，至少1个大写字母，1个小写字母，1个数字 和 1个特殊字符"
     *
     * @param newPwd
     * @return stringBuffer
     */
    public static StringBuffer pwd(String newPwd) {
        StringBuffer stringBuffer = new StringBuffer();
        // 密码最少8位,最多16位，至少1个大写字母，1个小写字母，1个数字 和 1个特殊字符
        if (newPwd.length() > 16 || newPwd.length() < 8) {
            stringBuffer.append("密码最少8位,最多16位，");
            return stringBuffer;
        }
        boolean pwdOfNum = true;
        boolean pwdOfA = true;
        boolean pwdOfa = true;
        boolean pwdOfF = true;
        byte[] bytes = newPwd.getBytes();
        for (byte aByte : bytes) {
            if (aByte < 21 || aByte > 126) {
                stringBuffer.append("密码格式错误,只能为英文字母,数字,符号");
                return stringBuffer;
            }
            if (aByte > 64 && aByte < 91) {
                pwdOfA = false;
            }
            if (aByte > 96 && aByte < 123) {
                pwdOfa = false;
            }
            if (aByte > 47 && aByte < 58) {
                pwdOfNum = false;
            }
            if ((aByte < 48) || (aByte > 57 && aByte < 65) || (aByte > 90 && aByte < 97) || (aByte > 122)) {
                pwdOfF = false;
            }
        }
        if (pwdOfNum) {
            stringBuffer.append("密码至少1个数字");
        }
        if (pwdOfA) {
            stringBuffer.append("密码至少1个大写字母");
        }
        if (pwdOfa) {
            stringBuffer.append("密码至少1个小写字母");
        }
        if (pwdOfF) {
            stringBuffer.append("密码至少1个特殊字符");
        }
        return stringBuffer;
    }
}
